/**
 * <copyright>
 * </copyright>
 *
 * 
 */
package edu.pku.sei.AMT.resource.amtscript.grammar;

/**
 * This class provides the follow sets for all terminals of the grammar. These
 * sets are used during code completion.
 */
public class AmtscriptFollowSetProvider {
	
	public final static edu.pku.sei.AMT.resource.amtscript.IAmtscriptExpectedElement TERMINALS[] = new edu.pku.sei.AMT.resource.amtscript.IAmtscriptExpectedElement[43];
	
	public final static org.eclipse.emf.ecore.EStructuralFeature[] FEATURES = new org.eclipse.emf.ecore.EStructuralFeature[7];
	
	public final static edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] LINKS = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[69];
	
	public final static edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] EMPTY_LINK_ARRAY = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[0];
	
	public static void initializeTerminals0() {
		TERMINALS[0] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedCsString(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_0_0_0_0);
		TERMINALS[1] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedStructuralFeature(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_0_0_0_1);
		TERMINALS[2] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedStructuralFeature(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_1_0_0_0);
		TERMINALS[3] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedCsString(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_2_0_0_0);
		TERMINALS[4] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedCsString(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_3_0_0_0);
		TERMINALS[5] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedCsString(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_0_0_0_2_0_0_1_0_0_0);
		TERMINALS[6] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedCsString(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_1_0_0_1);
		TERMINALS[7] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedStructuralFeature(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_1_0_0_2);
		TERMINALS[8] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedStructuralFeature(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_2_0_0_1);
		TERMINALS[9] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedCsString(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_2_0_0_2);
		TERMINALS[10] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedStructuralFeature(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_2_0_0_3_0_0_0);
		TERMINALS[11] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedCsString(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_2_0_0_4);
		TERMINALS[12] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedStructuralFeature(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_3_0_0_1_0_0_0);
		TERMINALS[13] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedStructuralFeature(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_3_0_0_2);
		TERMINALS[14] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedCsString(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_3_0_0_3);
		TERMINALS[15] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedStructuralFeature(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_4_0_0_0);
		TERMINALS[16] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedStructuralFeature(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_5_0_0_0);
		TERMINALS[17] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedStructuralFeature(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_6_0_0_0_0_0_0);
		TERMINALS[18] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedCsString(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_6_0_0_1_0_0_0);
		TERMINALS[19] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedCsString(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_6_0_0_2);
		TERMINALS[20] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedCsString(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_3_0_0_6);
		TERMINALS[21] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedCsString(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_3_0_0_4_0_0_1);
		TERMINALS[22] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedCsString(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_4_0_0_1);
		TERMINALS[23] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedStructuralFeature(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_4_0_0_2);
		TERMINALS[24] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedCsString(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_4_0_0_3);
		TERMINALS[25] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedStructuralFeature(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_4_0_0_4);
		TERMINALS[26] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedCsString(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_5_0_0_1);
		TERMINALS[27] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedStructuralFeature(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_5_0_0_2);
		TERMINALS[28] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedStructuralFeature(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_6_0_0_1_0_0_1);
		TERMINALS[29] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedStructuralFeature(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_6_0_0_3_0_0_0);
		TERMINALS[30] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedStructuralFeature(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_7_0_0_0);
		TERMINALS[31] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedStructuralFeature(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_6_0_0_5_0_0_0);
		TERMINALS[32] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedCsString(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_6_0_0_7);
		TERMINALS[33] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedCsString(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_6_0_0_3_0_0_1_0_0_0);
		TERMINALS[34] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedCsString(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_6_0_0_3_0_0_2);
		TERMINALS[35] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedStructuralFeature(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_6_0_0_3_0_0_1_0_0_1);
		TERMINALS[36] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedCsString(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_6_0_0_4_0_0_1_0_0_0);
		TERMINALS[37] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedCsString(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_6_0_0_4_0_0_2);
		TERMINALS[38] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedCsString(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_6_0_0_5_0_0_1);
		TERMINALS[39] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedCsString(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_7_0_0_1);
		TERMINALS[40] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedStructuralFeature(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_7_0_0_2);
		TERMINALS[41] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedCsString(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_7_0_0_3);
		TERMINALS[42] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptExpectedStructuralFeature(edu.pku.sei.AMT.resource.amtscript.grammar.AmtscriptGrammarInformationProvider.AMTSCRIPT_7_0_0_4);
	}
	
	public static void initializeTerminals() {
		initializeTerminals0();
	}
	
	public static void initializeFeatures0() {
		FEATURES[0] = edu.pku.sei.AMT.AmtPackage.eINSTANCE.getTransformation().getEStructuralFeature(edu.pku.sei.AMT.AmtPackage.TRANSFORMATION__PARAMETERS);
		FEATURES[1] = edu.pku.sei.AMT.AmtPackage.eINSTANCE.getTransformation().getEStructuralFeature(edu.pku.sei.AMT.AmtPackage.TRANSFORMATION__KEYS);
		FEATURES[2] = edu.pku.sei.AMT.AmtPackage.eINSTANCE.getTransformation().getEStructuralFeature(edu.pku.sei.AMT.AmtPackage.TRANSFORMATION__RULES);
		FEATURES[3] = edu.pku.sei.AMT.AmtPackage.eINSTANCE.getRule().getEStructuralFeature(edu.pku.sei.AMT.AmtPackage.RULE__VARIABLES);
		FEATURES[4] = edu.pku.sei.AMT.AmtPackage.eINSTANCE.getRule().getEStructuralFeature(edu.pku.sei.AMT.AmtPackage.RULE__SECTIONS);
		FEATURES[5] = edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection().getEStructuralFeature(edu.pku.sei.AMT.AmtPackage.SECTION__LINKS);
		FEATURES[6] = edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection().getEStructuralFeature(edu.pku.sei.AMT.AmtPackage.SECTION__SECTIONS);
	}
	
	public static void initializeFeatures() {
		initializeFeatures0();
	}
	
	public static void initializeLinks0() {
		LINKS[0] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getTypedModel(), FEATURES[0]);
		LINKS[1] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getKey(), FEATURES[1]);
		LINKS[2] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getRule(), FEATURES[2]);
		LINKS[3] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getKey(), FEATURES[1]);
		LINKS[4] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getRule(), FEATURES[2]);
		LINKS[5] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getTypedModel(), FEATURES[0]);
		LINKS[6] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getKey(), FEATURES[1]);
		LINKS[7] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getRule(), FEATURES[2]);
		LINKS[8] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getKey(), FEATURES[1]);
		LINKS[9] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getRule(), FEATURES[2]);
		LINKS[10] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getKey(), FEATURES[1]);
		LINKS[11] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getRule(), FEATURES[2]);
		LINKS[12] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getKey(), FEATURES[1]);
		LINKS[13] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getRule(), FEATURES[2]);
		LINKS[14] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getRule(), FEATURES[2]);
		LINKS[15] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getKey(), FEATURES[1]);
		LINKS[16] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getRule(), FEATURES[2]);
		LINKS[17] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getKey(), FEATURES[1]);
		LINKS[18] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getRule(), FEATURES[2]);
		LINKS[19] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getObjectVariable(), FEATURES[3]);
		LINKS[20] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getPrimitiveVariable(), FEATURES[3]);
		LINKS[21] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[4]);
		LINKS[22] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[4]);
		LINKS[23] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[4]);
		LINKS[24] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getObjectVariable(), FEATURES[3]);
		LINKS[25] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getPrimitiveVariable(), FEATURES[3]);
		LINKS[26] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[4]);
		LINKS[27] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[4]);
		LINKS[28] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[4]);
		LINKS[29] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getObjectVariable(), FEATURES[3]);
		LINKS[30] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getPrimitiveVariable(), FEATURES[3]);
		LINKS[31] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[4]);
		LINKS[32] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[4]);
		LINKS[33] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[4]);
		LINKS[34] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[4]);
		LINKS[35] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[4]);
		LINKS[36] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[4]);
		LINKS[37] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getRule(), FEATURES[2]);
		LINKS[38] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getLinkConstraint(), FEATURES[5]);
		LINKS[39] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]);
		LINKS[40] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]);
		LINKS[41] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]);
		LINKS[42] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getLinkConstraint(), FEATURES[5]);
		LINKS[43] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]);
		LINKS[44] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]);
		LINKS[45] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]);
		LINKS[46] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getLinkConstraint(), FEATURES[5]);
		LINKS[47] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]);
		LINKS[48] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]);
		LINKS[49] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]);
		LINKS[50] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getLinkConstraint(), FEATURES[5]);
		LINKS[51] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]);
		LINKS[52] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]);
		LINKS[53] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]);
		LINKS[54] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]);
		LINKS[55] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]);
		LINKS[56] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]);
		LINKS[57] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]);
		LINKS[58] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]);
		LINKS[59] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]);
		LINKS[60] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]);
		LINKS[61] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]);
		LINKS[62] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]);
		LINKS[63] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]);
		LINKS[64] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]);
		LINKS[65] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]);
		LINKS[66] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[4]);
		LINKS[67] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[4]);
		LINKS[68] = new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[4]);
	}
	
	public static void initializeLinks() {
		initializeLinks0();
	}
	
	public static void wire0() {
		TERMINALS[0].addFollower(TERMINALS[1], EMPTY_LINK_ARRAY);
		TERMINALS[1].addFollower(TERMINALS[2], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getTypedModel(), FEATURES[0]), });
		TERMINALS[1].addFollower(TERMINALS[3], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getKey(), FEATURES[1]), });
		TERMINALS[1].addFollower(TERMINALS[4], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getRule(), FEATURES[2]), });
		TERMINALS[5].addFollower(TERMINALS[2], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getTypedModel(), FEATURES[0]), });
		TERMINALS[2].addFollower(TERMINALS[6], EMPTY_LINK_ARRAY);
		TERMINALS[6].addFollower(TERMINALS[7], EMPTY_LINK_ARRAY);
		TERMINALS[7].addFollower(TERMINALS[5], EMPTY_LINK_ARRAY);
		TERMINALS[7].addFollower(TERMINALS[3], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getKey(), FEATURES[1]), });
		TERMINALS[7].addFollower(TERMINALS[4], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getRule(), FEATURES[2]), });
		TERMINALS[3].addFollower(TERMINALS[8], EMPTY_LINK_ARRAY);
		TERMINALS[8].addFollower(TERMINALS[9], EMPTY_LINK_ARRAY);
		TERMINALS[9].addFollower(TERMINALS[10], EMPTY_LINK_ARRAY);
		TERMINALS[10].addFollower(TERMINALS[10], EMPTY_LINK_ARRAY);
		TERMINALS[10].addFollower(TERMINALS[11], EMPTY_LINK_ARRAY);
		TERMINALS[11].addFollower(TERMINALS[3], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getKey(), FEATURES[1]), });
		TERMINALS[11].addFollower(TERMINALS[4], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getRule(), FEATURES[2]), });
		TERMINALS[4].addFollower(TERMINALS[12], EMPTY_LINK_ARRAY);
		TERMINALS[4].addFollower(TERMINALS[13], EMPTY_LINK_ARRAY);
		TERMINALS[12].addFollower(TERMINALS[12], EMPTY_LINK_ARRAY);
		TERMINALS[12].addFollower(TERMINALS[13], EMPTY_LINK_ARRAY);
		TERMINALS[13].addFollower(TERMINALS[14], EMPTY_LINK_ARRAY);
		TERMINALS[14].addFollower(TERMINALS[15], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getObjectVariable(), FEATURES[3]), });
		TERMINALS[14].addFollower(TERMINALS[16], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getPrimitiveVariable(), FEATURES[3]), });
		TERMINALS[14].addFollower(TERMINALS[17], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[4]), });
		TERMINALS[14].addFollower(TERMINALS[18], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[4]), });
		TERMINALS[14].addFollower(TERMINALS[19], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[4]), });
		TERMINALS[14].addFollower(TERMINALS[20], EMPTY_LINK_ARRAY);
		TERMINALS[21].addFollower(TERMINALS[15], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getObjectVariable(), FEATURES[3]), });
		TERMINALS[21].addFollower(TERMINALS[16], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getPrimitiveVariable(), FEATURES[3]), });
		TERMINALS[21].addFollower(TERMINALS[17], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[4]), });
		TERMINALS[21].addFollower(TERMINALS[18], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[4]), });
		TERMINALS[21].addFollower(TERMINALS[19], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[4]), });
		TERMINALS[21].addFollower(TERMINALS[20], EMPTY_LINK_ARRAY);
		TERMINALS[20].addFollower(TERMINALS[4], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getRule(), FEATURES[2]), });
		TERMINALS[15].addFollower(TERMINALS[22], EMPTY_LINK_ARRAY);
		TERMINALS[22].addFollower(TERMINALS[23], EMPTY_LINK_ARRAY);
		TERMINALS[23].addFollower(TERMINALS[24], EMPTY_LINK_ARRAY);
		TERMINALS[24].addFollower(TERMINALS[25], EMPTY_LINK_ARRAY);
		TERMINALS[25].addFollower(TERMINALS[21], EMPTY_LINK_ARRAY);
		TERMINALS[16].addFollower(TERMINALS[26], EMPTY_LINK_ARRAY);
		TERMINALS[26].addFollower(TERMINALS[27], EMPTY_LINK_ARRAY);
		TERMINALS[27].addFollower(TERMINALS[21], EMPTY_LINK_ARRAY);
		TERMINALS[17].addFollower(TERMINALS[17], EMPTY_LINK_ARRAY);
		TERMINALS[17].addFollower(TERMINALS[18], EMPTY_LINK_ARRAY);
		TERMINALS[17].addFollower(TERMINALS[19], EMPTY_LINK_ARRAY);
		TERMINALS[18].addFollower(TERMINALS[28], EMPTY_LINK_ARRAY);
		TERMINALS[28].addFollower(TERMINALS[19], EMPTY_LINK_ARRAY);
		TERMINALS[19].addFollower(TERMINALS[29], EMPTY_LINK_ARRAY);
		TERMINALS[19].addFollower(TERMINALS[30], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getLinkConstraint(), FEATURES[5]), });
		TERMINALS[19].addFollower(TERMINALS[31], EMPTY_LINK_ARRAY);
		TERMINALS[19].addFollower(TERMINALS[17], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]), });
		TERMINALS[19].addFollower(TERMINALS[18], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]), });
		TERMINALS[19].addFollower(TERMINALS[19], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]), });
		TERMINALS[19].addFollower(TERMINALS[32], EMPTY_LINK_ARRAY);
		TERMINALS[29].addFollower(TERMINALS[33], EMPTY_LINK_ARRAY);
		TERMINALS[29].addFollower(TERMINALS[34], EMPTY_LINK_ARRAY);
		TERMINALS[33].addFollower(TERMINALS[35], EMPTY_LINK_ARRAY);
		TERMINALS[35].addFollower(TERMINALS[33], EMPTY_LINK_ARRAY);
		TERMINALS[35].addFollower(TERMINALS[34], EMPTY_LINK_ARRAY);
		TERMINALS[34].addFollower(TERMINALS[30], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getLinkConstraint(), FEATURES[5]), });
		TERMINALS[34].addFollower(TERMINALS[31], EMPTY_LINK_ARRAY);
		TERMINALS[34].addFollower(TERMINALS[17], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]), });
		TERMINALS[34].addFollower(TERMINALS[18], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]), });
		TERMINALS[34].addFollower(TERMINALS[19], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]), });
		TERMINALS[34].addFollower(TERMINALS[32], EMPTY_LINK_ARRAY);
		TERMINALS[36].addFollower(TERMINALS[30], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getLinkConstraint(), FEATURES[5]), });
		TERMINALS[37].addFollower(TERMINALS[31], EMPTY_LINK_ARRAY);
		TERMINALS[37].addFollower(TERMINALS[17], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]), });
		TERMINALS[37].addFollower(TERMINALS[18], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]), });
		TERMINALS[37].addFollower(TERMINALS[19], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]), });
		TERMINALS[37].addFollower(TERMINALS[32], EMPTY_LINK_ARRAY);
		TERMINALS[31].addFollower(TERMINALS[38], EMPTY_LINK_ARRAY);
		TERMINALS[38].addFollower(TERMINALS[31], EMPTY_LINK_ARRAY);
		TERMINALS[38].addFollower(TERMINALS[17], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]), });
		TERMINALS[38].addFollower(TERMINALS[18], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]), });
		TERMINALS[38].addFollower(TERMINALS[19], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[6]), });
		TERMINALS[38].addFollower(TERMINALS[32], EMPTY_LINK_ARRAY);
		TERMINALS[32].addFollower(TERMINALS[17], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[4]), });
		TERMINALS[32].addFollower(TERMINALS[18], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[4]), });
		TERMINALS[32].addFollower(TERMINALS[19], new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature[] {new edu.pku.sei.AMT.resource.amtscript.mopp.AmtscriptContainedFeature(edu.pku.sei.AMT.AmtPackage.eINSTANCE.getSection(), FEATURES[4]), });
		TERMINALS[32].addFollower(TERMINALS[20], EMPTY_LINK_ARRAY);
		TERMINALS[32].addFollower(TERMINALS[32], EMPTY_LINK_ARRAY);
		TERMINALS[30].addFollower(TERMINALS[39], EMPTY_LINK_ARRAY);
		TERMINALS[39].addFollower(TERMINALS[40], EMPTY_LINK_ARRAY);
		TERMINALS[40].addFollower(TERMINALS[41], EMPTY_LINK_ARRAY);
		TERMINALS[41].addFollower(TERMINALS[42], EMPTY_LINK_ARRAY);
		TERMINALS[42].addFollower(TERMINALS[36], EMPTY_LINK_ARRAY);
		TERMINALS[42].addFollower(TERMINALS[37], EMPTY_LINK_ARRAY);
	}
	
	public static void wire() {
		wire0();
	}
	
	static {
		// initialize the arrays
		initializeTerminals();
		initializeFeatures();
		initializeLinks();
		// wire the terminals
		wire();
	}
}
